package com.ruoyi.produce.process.receiving.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;

/**
 * 验收单，数据传输对象，面向前端需求
 * @author lsy 2021.8.24
 * 修改：
 */
@Data
public class ReceivingReportDto {
    /**
     * 验收单编号
     */
    @NotNull(message = "验收单编号不能为空")
    @ApiModelProperty(value = "验收单编号", required = true)
    private String receivingReportId;

    /**
     * 关联编号
     */
    @NotNull(message = "关联编号")
    @ApiModelProperty(value = "关联编号", required = true)
    private String workSheetId;

    /**
     * 来源类型
     * 加工单1、委外生产计划2
     * 采购3
     */
    @ApiModelProperty(value = "来源类型 加工单1、委外生产计划2、采购3")
    private String sourceType;

    /**
     * 产品编号
     */
    @ApiModelProperty(value = "产品编号")
    private String produceId;

    /**
     * 产品名称
     */
    @ApiModelProperty("产品名称")
    @Excel(name = "产品名称")
    private String produceName;

    /**
     * 类别编号
     */
    @ApiModelProperty("类别编号")
    @Excel(name = "类别编号")
    private String baseCategoryId;

    /**
     * 类别名称
     */
    @ApiModelProperty("类别名称")
    @Excel(name = "类别名称")
    private String baseCategoryName;

    /**
     * 计量单位编号
     */
    @ApiModelProperty("计量单位编号")
    @Excel(name = "计量单位编号")
    private String baseUnitId;

    /**
     * 计量单位名称
     */
    @ApiModelProperty("计量单位名称")
    @Excel(name = "计量单位名称")
    private String baseUnit;

    /**
     * 产品规格
     */
    @ApiModelProperty("产品规格")
    @Excel(name = "产品规格")
    private String produceSpecs;

    /**
     * 产品品牌
     */
    @ApiModelProperty("产品品牌")
    @Excel(name = "产品品牌")
    private String produceBrand;

    /**
     * 验收数量
     */
    @ApiModelProperty(value = "验收数量")
    private double receivingReportNumber;

    /**
     * 不合格数量
     */
    @ApiModelProperty(value = "不合格数量")
    private double unqualifiedNumber;

    /**
     * 入库数量
     */
    @ApiModelProperty(value = "入库数量")
    private double warehousingNumber;

    /**
     * 是否入库
     * 0-未入库（默认） 1-入库
     * 不需要前端添加，由后端自动判断然后修改
     */
    @ApiModelProperty(value = "备注")
    private String storageFlag;

    /**
     * 仓库编号
     */
    @NotNull(message = "仓库编号不能为空")
    @ApiModelProperty(value = "仓库编号", required = true)
    private String warehouseId;

    /**
     * 仓库名称
     */
    @ApiModelProperty(value = "仓库名称")
    private String warehouseName;

    /**
     * 验收者编号
     */
    @NotNull(message = "验收者编号不能为空")
    @ApiModelProperty(value = "验收者编号", required = true)
    private String staffInspectId;

    /**
     * 验收者名称
     */
    @ApiModelProperty(value = "验收者名称")
    private String staffInspectName;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private java.sql.Timestamp createTime;

    /**
     * 是否审批
     */
    @ApiModelProperty("是否审批")
    private String approvalFlag;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;
}
